function cascade_init(config) {
    // select容器ID
    var $selectWrap = $(config.id);
    // 默认选中值
    var selected = config.selected;

    // 创建一个Select
    var createSelect = function (optionData) {
        var html = '';
        html += ' <select class="select-item" required="' + config.required + '" name="issues['+ config.target +'][]">';
        html += '  <option value="">' + config.placeholder + '</option>';
        for (var i = 0; i < optionData.length; i++) {
            html += '  <option value="' + optionData[i].label + '">' + optionData[i].label + '</option>';
        }
        html += ' </select>';
        return html;
    }

    // 获取当前option的数据
    var getOptionData = function (data, optionIndex) {
        var item = data;
        for (var i = 0; i < optionIndex.length; i++) {
            if ('undefined' == typeof item[optionIndex[i]]) {
                item = null;
                break;
            }
            else if ('undefined' == typeof item[optionIndex[i]].children) {
                item = null;
                break;
            }
            else {
                item = item[optionIndex[i]].children;
            }
        }
        return item;
    }

    // 创建顶级select
    var html = createSelect(config.dataJson);
    $selectWrap.append(html);
    var index = [];

    // 设置默认选中的值
    for (var i = 0; i < selected.length; i++) {
        // 设置最后一个select的选中值
        $selectWrap.find('select:last').val(selected[i]);
        // 获取该选中值的索引
        var lastIndex = $selectWrap.find('select:last').get(0).selectedIndex - 1;

        index.push(lastIndex);
        // 取出下级的选项值
        var childItem = getOptionData(config.dataJson, index);
        // 下级选项值存在则创建select
        if (childItem) {
            var html = createSelect(childItem);
            $selectWrap.append(html);
        }
    }

    // 监听select
    $selectWrap.on('change', '.select-item',
        function (event) {
            var $thisItem = $(event.target);
            // 移除后面的select
            $thisItem.nextAll('select').remove();
            var index = [];
            // 获取所有select，取出选中项的值和索引
            $thisItem.parent().find('select').each(function () {
                index.push($(this).get(0).selectedIndex - 1);
            });

            var childItem = getOptionData(config.dataJson, index);

            if (childItem) {
                var html = createSelect(childItem);
                $selectWrap.append(html);
            }
        }
    )

};